# Python 环境配置
# 这个文件包含所有 Python 相关的配置

# pyenv 配置
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

# 如果使用 pyenv-virtualenv
if command -v pyenv-virtualenv-init 1>/dev/null 2>&1; then
  eval "$(pyenv virtualenv-init -)"
fi

# 如果使用 conda
# >>> conda initialize >>>
if [ -f "$HOME/miniconda3/etc/profile.d/conda.sh" ]; then
    . "$HOME/miniconda3/etc/profile.d/conda.sh"
else
    export PATH="$HOME/miniconda3/bin:$PATH"
fi
# <<< conda initialize <<<

# pipx 配置 (用于安装全局 Python 应用)
export PATH="$HOME/.local/bin:$PATH"

# 虚拟环境管理函数
function venv-create() {
  python -m venv .venv
  echo "已创建虚拟环境 .venv"
}

function venv-activate() {
  if [ -d .venv ]; then
    source .venv/bin/activate
    echo "已激活虚拟环境 (.venv)"
  elif [ -d venv ]; then
    source venv/bin/activate
    echo "已激活虚拟环境 (venv)"
  else
    echo "未找到虚拟环境，请先创建"
    return 1
  fi
}

function venv-deactivate() {
  deactivate
  echo "已退出虚拟环境"
}

# Python 常用别名
alias py="python"
alias pip-upgrade="pip install --upgrade pip"
alias pip-list="pip list --outdated"
alias venv="venv-activate"
alias venv-new="venv-create"
alias venv-exit="venv-deactivate"

# pip 镜像源设置 (提高安装速度)
# 创建配置文件
function pip-use-mirror() {
  mkdir -p $HOME/.pip
  echo "[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn" > $HOME/.pip/pip.conf
  echo "已设置 pip 镜像源为清华大学镜像"
}

# 恢复官方源
function pip-use-official() {
  if [ -f $HOME/.pip/pip.conf ]; then
    rm $HOME/.pip/pip.conf
  fi
  echo "已恢复 pip 官方源"
}

# 检查 Python 环境函数
function check_python_env() {
  echo "Python 环境信息："
  echo "Python 版本: $(python --version 2>&1)"
  echo "pip 版本: $(pip --version 2>&1)"
  
  if command -v pyenv 1>/dev/null 2>&1; then
    echo "pyenv 版本: $(pyenv --version)"
    echo "已安装 Python 版本:"
    pyenv versions
  fi
  
  if command -v conda 1>/dev/null 2>&1; then
    echo "conda 版本: $(conda --version)"
    echo "已安装环境:"
    conda env list
  fi
  
  if [ -n "$VIRTUAL_ENV" ]; then
    echo "当前虚拟环境: $VIRTUAL_ENV"
  fi
}

# 别名
alias py-env="check_python_env" 